package avicit.bdp.dms.dss.dao;

import avicit.bdp.common.base.BaseDAO;
import avicit.bdp.dms.dss.dto.DataResourceDTO;
import avicit.bdp.dms.dss.dto.ResourceDTO;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author liyb
 * 数据资源表数据操作接口
 */
public interface DataResourceDAO extends BaseDAO<DataResourceDTO> {

    /**
     * 查询资源列表
     *
     * @param typeIdList 分类ID
     * @param projectId  项目空间ID
     * @param name       资源名称
     * @param statusList 状态列表
     * @param currentDescribeUser 当前订阅人
     * @return 资源列表
     */
    Page<DataResourceDTO> getDataResourceList(@Param("typeIdList") List<String> typeIdList,
                                              @Param("projectId") String projectId,
                                              @Param("name") String name,
                                              @Param("currentDescribeUser") String currentDescribeUser,
                                              @Param("statusList") List<Integer> statusList,
                                              @Param("wordSecretList") List<String> wordSecretList);

    /**
     * 查询文件路径
     *
     * @param resourceId 资源ID
     * @return 文件路径
     */
    String getFilePathFromResource(@Param("resourceId") String resourceId);

    List<ResourceDTO> getFileList(@Param("projectId") String projectId);

    String getTableIdByProjectTableId(@Param("projectTableId") String projectTableId);

    /**
     * 查询审核通过的订阅数据对应的token
     * @param dataResourceId
     * @param subscribeId
     * @return
     */
    String getToken(@Param("dataResourceId") String dataResourceId, @Param("subscribeId") String subscribeId);

    Page<DataResourceDTO> getServiceCatalogList(@Param("typeIdList") List<String> typeIdList,
                                                @Param("name") String name,
                                                @Param("viewSort") String viewSort,
                                                @Param("wordSecretList") List<String> wordSecretList);

}
